
"""
    自定义转换器
        1、定义类，继承自BaseConverter
        2、重写init方法，接受两个参数
        3、初始化父类成员变量，还有子类自己的规则
        4、将转换器类添加到系统默认的转换器列表中
"""
from flask import Flask
from werkzeug.routing import BaseConverter

app = Flask(__name__)


class MyRegexConverter(BaseConverter):

    def __init__(self, map, regex):
        super().__init__(map)
        self.regex = regex


app.url_map.converters["myconverter"] = MyRegexConverter


@app.route("/<myconverter('\d{3}'):number>")
def get_three(number):
    return "input 3 width number %s" % number


@app.route("/<myconverter('\d{4}'):number>")
def get_four(number):
    return "input 4 width number %s" % number


if __name__ == '__main__':
    print(app.url_map.converters)
    app.run()

